package com.lxr0860.lxr0860production_test.utils;

import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.Log;

import java.lang.reflect.Method;
import java.util.Locale;

public class DeviceInfo {
    /**
     * 获取设备宽度（px）
     *
     */
    public static int getDeviceWidth(Context context) {
        return context.getResources().getDisplayMetrics().widthPixels;
    }

    /**
     * 获取设备高度（px）
     */
    public static int getDeviceHeight(Context context) {
        return context.getResources().getDisplayMetrics().heightPixels;
    }

    /**
     * 获取设备的唯一标识， 需要 “android.permission.READ_Phone_STATE”权限
     */
    public static String getIMEI(Context context) {
        TelephonyManager tm = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        String deviceId = tm.getDeviceId();
        if (deviceId == null) {
            return "UnKnown";
        } else {
            return deviceId;
        }
    }

    /**
     * 获取厂商名
     * **/
    public static String getDeviceManufacturer() {
        return android.os.Build.MANUFACTURER;
    }

    /**
     * 获取产品名
     * **/
    public static String getDeviceProduct() {
        return android.os.Build.PRODUCT;
    }

    /**
     * 获取手机品牌
     */
    public static String getDeviceBrand() {
        return android.os.Build.BRAND;
    }

    /**
     * 获取手机型号
     */
    public static String getDeviceModel() {
        return android.os.Build.MODEL;
    }

    /**
     * 获取手机主板名
     */
    public static String getDeviceBoard() {
        return android.os.Build.BOARD;
    }

    /**
     * 设备名
     * **/
    public static String getDeviceDevice() {
        return android.os.Build.DEVICE;
    }

    /**
     *
     *
     * fingerprit 信息
     * **/
    public static String getDeviceFubgerprint() {
        return android.os.Build.FINGERPRINT;
    }

    /**
     * 硬件名
     *
     * **/
    public static String getDeviceHardware() {
        return android.os.Build.HARDWARE;
    }

    /**
     * 主机
     *
     * **/
    public static String getDeviceHost() {
        return android.os.Build.HOST;
    }

    /**
     *
     * 显示ID
     * **/
    public static String getDeviceDisplay() {
        return android.os.Build.DISPLAY;
    }

    /**
     * ID
     *
     * **/
    public static String getDeviceId() {
        return android.os.Build.ID;
    }

    /**
     * 获取手机用户名
     *
     * **/
    public static String getDeviceUser() {
        return android.os.Build.USER;
    }

    /**
     * 获取手机 硬件序列号
     * **/
    public static String getDeviceSerial() {
        return android.os.Build.SERIAL;
    }

    /**
     * 获取手机Android 系统SDK
     *
     * @return
     */
    public static int getDeviceSDK() {
        return android.os.Build.VERSION.SDK_INT;
    }

    /**
     * 获取手机Android 版本
     *
     * @return
     */
    public static String getDeviceAndroidVersion() {
        return android.os.Build.VERSION.RELEASE;
    }

    /**
     * 获取当前手机系统语言。
     */
    public static String getDeviceDefaultLanguage() {
        return Locale.getDefault().getLanguage();
    }

    /**
     * 获取当前系统上的语言列表(Locale列表)
     */
    public static String getDeviceSupportLanguage() {
        Log.e("wangjie", "Local:" + Locale.GERMAN);
        Log.e("wangjie", "Local:" + Locale.ENGLISH);
        Log.e("wangjie", "Local:" + Locale.US);
        Log.e("wangjie", "Local:" + Locale.CHINESE);
        Log.e("wangjie", "Local:" + Locale.TAIWAN);
        Log.e("wangjie", "Local:" + Locale.FRANCE);
        Log.e("wangjie", "Local:" + Locale.FRENCH);
        Log.e("wangjie", "Local:" + Locale.GERMANY);
        Log.e("wangjie", "Local:" + Locale.ITALIAN);
        Log.e("wangjie", "Local:" + Locale.JAPAN);
        Log.e("wangjie", "Local:" + Locale.JAPANESE);
        return Locale.getAvailableLocales().toString();
    }

    public static String getDeviceAllInfo(Context context) {

        return
//                "nn1. IMEI:ntt" + getIMEI(context)


                "nn2. 设备宽度:ntt" + getDeviceWidth(context)

                + "nn3. 设备高度:ntt" + getDeviceHeight(context)

                + "nn4. 是否有内置SD卡:ntt" + SDCardUtils.isSDCardMount()

                + "nn5. RAM 信息:ntt" + SDCardUtils.getRAMInfo(context)

                + "nn6. 内部存储信息ntt" + SDCardUtils.getStorageInfo(context, 0)

                + "nn7. SD卡 信息:ntt" + SDCardUtils.getStorageInfo(context, 1)

                + "nn10. 系统默认语言:ntt" + getDeviceDefaultLanguage()

                + "nn11. 硬件序列号(设备名):ntt" + getDeviceSN()

                + "nn12. 手机型号:ntt" + android.os.Build.MODEL

                + "nn13. 生产厂商:ntt" + android.os.Build.MANUFACTURER

                + "nn14. 手机Fingerprint标识:ntt" + android.os.Build.FINGERPRINT

                + "nn15. Android 版本:ntt" + android.os.Build.VERSION.RELEASE

                + "nn16. Android SDK版本:ntt" + android.os.Build.VERSION.SDK_INT

                + "nn17. 安全patch 时间:ntt" + android.os.Build.VERSION.SECURITY_PATCH

//                + "nn18. 发布时间:ntt" + Utils.Utc2Local(android.os.Build.TIME)

                + "nn19. 版本类型:ntt" + android.os.Build.TYPE

                + "nn20. 用户名:ntt" + android.os.Build.USER

                + "nn21. 产品名:ntt" + android.os.Build.PRODUCT

                + "nn22. ID:ntt" + android.os.Build.ID

                + "nn23. 显示ID:ntt" + android.os.Build.DISPLAY

                + "nn24. 硬件名:ntt" + android.os.Build.HARDWARE

                + "nn25. 产品名:ntt" + android.os.Build.DEVICE

                + "nn26. Bootloader:ntt" + android.os.Build.BOOTLOADER

                + "nn27. 主板名:ntt" + android.os.Build.BOARD

                + "nn28. CodeName:ntt" + android.os.Build.VERSION.CODENAME

                + "nn29. 语言支持:ntt" + getDeviceSupportLanguage();

    }


    public static String getDeviceSN() {

        String serial = null;

        try {
            Class<?> c = Class.forName("android.os.SystemProperties");
            Method get = c.getMethod("get", String.class);
            serial = (String) get.invoke(c, "ro.serialno");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return serial;
    }
}

//2023-11-21 15:58:33.463  4069-4069  DEVInfo                 com.lxr5002.lxr5002_test             E  nn2. 设备宽度:ntt1280nn3. 设备高度:ntt737nn4. 是否有内置SD卡:ntttruenn5. RAM 信息:ntt可用/总共：2.71 GB/4.00 GBnn6. 内部存储信息ntt可用/总共：55.14 GB/55.52 GBnn7. SD卡 信息:ntt无外置SD卡nn10. 系统默认语言:nttzhnn11. 硬件序列号(设备名):ntt10STMZCHDLL4311502nn12. 手机型号:nttA10STnn13. 生产厂商:nttA10STnn14. 手机Fingerprint标识:nttTIGERS/TIS001_S4/TIS001_S4:10/QP1A.190711.020/1590891845:user/release-keysnn15. Android 版本:ntt11nn16. Android SDK版本:ntt30nn17. 安全patch 时间:ntt2023-3-28nn19. 版本类型:nttusernn20. 用户名:nttrootnn21. 产品名:nttP61nn22. ID:nttRP1A.200720.011nn23. 显示ID:nttA10STMT6771_11_M_Z_H_HDLL_20231116nn24. 硬件名:nttmt6771nn25. 产品名:nttP61nn26. Bootloader:nttunknownnn27. 主板名:nttP61nn28. CodeName:nttRELnn29. 语言支持:ntt[Ljava.util.Locale;@7f5ae97
